#ifndef LANGUAGE_H
#define LANGUAGE_H

// NOTE: IF YOU CHANGE LANGUAGE FILES OR MERGE A FILE WITH CHANGES
//
//   ==> ALWAYS TRY TO COMPILE MARLIN WITH/WITHOUT "ULTIPANEL" / "ULTRALCD" / "SDSUPPORT" #define IN "Configuration.h" 
//   ==> ALSO TRY ALL AVAILABLE "LANGUAGE_CHOICE" OPTIONS

// Languages
// en English
// pl Polish
// fr French
// de German
// es Spanish
// ru Russian
// it Italian
// pt Portuguese
// fi Finnish
// an Aragonese
// nl Dutch
// ca Catalan
// eu Basque-Euskera

#ifndef LANGUAGE_CHOICE
#define LANGUAGE_CHOICE en  // Pick your language from the list above
#endif

#if LANGUAGE_CHOICE >= 1
#error "Languages now uses ISO language codes instead of numbers."
#endif

#define PROTOCOL_VERSION "0.9.1.1"

#define MACHINE_NAME MACHINENAME

// Default firmware set to Mendel
#define FIRMWARE_URL "https://github.com/Dark-Guan/Ananas"


#ifndef MACHINE_UUID
#define MACHINE_UUID "00000000-0000-0000-0000-000000000000"
#endif

#define STRINGIFY_(n) #n
#define STRINGIFY(n) STRINGIFY_(n)

// Common LCD messages

/* nothing here yet */

// Common serial messages
//#define MSG_MARLIN "Marlin"

// Serial Console Messages (do not translate those!)


//TODO modify the language message
//#define MSG_Enqueing                        "enqueing \""
//#define MSG_POWERUP                         "PowerUp"
//#define MSG_EXTERNAL_RESET                  " External Reset"
//#define MSG_BROWNOUT_RESET                  " Brown out Reset"
//#define MSG_WATCHDOG_RESET                  " Watchdog Reset"
//#define MSG_SOFTWARE_RESET                  " Software Reset"
#define MSG_AUTHOR                          " | Author: "
#define MSG_CONFIGURATION_VER               " Last Updated: "
//#define MSG_FREE_MEMORY                     " Free Memory: "
//#define MSG_PLANNER_BUFFER_BYTES            "  PlannerBufferBytes: "
#define MSG_OK                              "ok"
//#define MSG_FILE_SAVED                      "Done saving file."
#define MSG_ERR_LINE_NO                     "Line Number is not Last Line Number+1, Last Line: "
#define MSG_ERR_CHECKSUM_MISMATCH           "checksum mismatch, Last Line: "
#define MSG_ERR_NO_CHECKSUM                 "No Checksum with line number, Last Line: "
#define MSG_ERR_NO_LINENUMBER_WITH_CHECKSUM "No Line Number with checksum, Last Line: "
//#define MSG_FILE_PRINTED                    "Done printing file"
//#define MSG_BEGIN_FILE_LIST                 "Begin file list"
//#define MSG_END_FILE_LIST                   "End file list"
//#define MSG_M104_INVALID_EXTRUDER           "M104 Invalid extruder "
//#define MSG_M105_INVALID_EXTRUDER           "M105 Invalid extruder "
//#define MSG_M200_INVALID_EXTRUDER           "M200 Invalid extruder "
//#define MSG_M218_INVALID_EXTRUDER           "M218 Invalid extruder "
//#define MSG_M221_INVALID_EXTRUDER           "M221 Invalid extruder "
//#define MSG_ERR_NO_THERMISTORS              "No thermistors - no temperature"
//#define MSG_M109_INVALID_EXTRUDER           "M109 Invalid extruder "
//#define MSG_HEATING                         "Heating..."
//#define MSG_HEATING_COMPLETE                "Heating done."
//#define MSG_BED_HEATING                     "Bed Heating."
//#define MSG_BED_DONE                        "Bed done."
//#define MSG_M115_REPORT                     "FIRMWARE_NAME:Marlin V1; Sprinter/grbl mashup for gen6 FIRMWARE_URL:" FIRMWARE_URL " PROTOCOL_VERSION:" PROTOCOL_VERSION " MACHINE_TYPE:" MACHINE_NAME " EXTRUDER_COUNT:" STRINGIFY(EXTRUDERS) " UUID:" MACHINE_UUID "\n"
//#define MSG_COUNT_X                         " Count X: "
#define MSG_ERR_KILLED                      "Printer halted. kill() called!"
#define MSG_ERR_STOPPED                     "Ananas stopped due to errors. Fix the error and use M999 to restart. (Temperature is reset. Set it after restarting)"
#define MSG_RESEND                          "Resend: "
//#define MSG_UNKNOWN_COMMAND                 "Unknown command: \""
//#define MSG_ACTIVE_EXTRUDER                 "Active Extruder: "
//#define MSG_INVALID_EXTRUDER                "Invalid extruder"
//#define MSG_X_MIN                           "x_min: "
//#define MSG_X_MAX                           "x_max: "
//#define MSG_Y_MIN                           "y_min: "
//#define MSG_Y_MAX                           "y_max: "
//#define MSG_Z_MIN                           "z_min: "
//#define MSG_Z_MAX                           "z_max: "
//#define MSG_M119_REPORT                     "Reporting endstop status"
//#define MSG_ENDSTOP_HIT                     "TRIGGERED"
//#define MSG_ENDSTOP_OPEN                    "open"
//#define MSG_HOTEND_OFFSET                   "Hotend offsets:"
//
//#define MSG_SD_CANT_OPEN_SUBDIR             "Cannot open subdir"
//#define MSG_SD_INIT_FAIL                    "SD init fail"
//#define MSG_SD_VOL_INIT_FAIL                "volume.init failed"
//#define MSG_SD_OPENROOT_FAIL                "openRoot failed"
//#define MSG_SD_CARD_OK                      "SD card ok"
//#define MSG_SD_WORKDIR_FAIL                 "workDir open failed"
//#define MSG_SD_OPEN_FILE_FAIL               "open failed, File: "
//#define MSG_SD_FILE_OPENED                  "File opened: "
//#define MSG_SD_SIZE                         " Size: "
//#define MSG_SD_FILE_SELECTED                "File selected"
//#define MSG_SD_WRITE_TO_FILE                "Writing to file: "
//#define MSG_SD_PRINTING_BYTE                "SD printing byte "
//#define MSG_SD_NOT_PRINTING                 "Not SD printing"
//#define MSG_SD_ERR_WRITE_TO_FILE            "error writing to file"
//#define MSG_SD_CANT_ENTER_SUBDIR 			"Cannot enter subdir: "
//
//#define MSG_STEPPER_TOO_HIGH                "Steprate too high: "
//#define MSG_ENDSTOPS_HIT                    "endstops hit: "
//#define MSG_ERR_COLD_EXTRUDE_STOP           " cold extrusion prevented"
//#define MSG_ERR_LONG_EXTRUDE_STOP           " too long extrusion prevented"
//#define MSG_BABYSTEPPING_X                  "Babystepping X"
//#define MSG_BABYSTEPPING_Y                  "Babystepping Y"
//#define MSG_BABYSTEPPING_Z                  "Babystepping Z"
//#define MSG_SERIAL_ERROR_MENU_STRUCTURE		"Error in menu structure"

// LCD Menu Messages

#endif //__LANGUAGE_H
